A messaging system is a collection of hardware and software that is configured to facilitate message communication between two or more entities. One example of a messaging system is a message exchange infrastructure for transmitting messages from one or more sending applications to one or more receiving applications. Messaging systems must be compatible with the format and protocols used by each of the applications that communicates through it. Further, messaging systems must keep track of message traffic in case of a failed message transmission, to facilitate fault recovery processes, and to ensure adequate message transmission success rates.
Most messaging systems employ a database for short-term message persistency and processing, and an archive for long-term storage of message data. An archive is particularly useful to prevent the database from being completely filled, which can cause loss of message data and/or a slowing of message processing and transmissions.
In a messaging system with high message throughput, archiving can fall short of database inflow rate despite using large amounts of processing resources. This still leads to overfilling of the database and the problems of lower message throughput and/or service quality.